package org.lanqiao.tjut.aop;

import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;

@Aspect
public class AOPManager {
	/**
	 * 
	 * @ Pointcut 用于声明切入点 在@AspectJ注解风格的AOP中 一个切入点签名通过一个普通的方法来定义 1
	 * 作为切入点签名的方法必须返回void类型 2 方法没有参数 用private修饰 3 方法体为空 切入点表达式的写法
	 * execution(主要)表示匹配方法执行的连接点 例如: * org.lanqiao.tjut.service..*.print*(..)) 1
	 * "*" 表示方法的返回类型任意 2 org.lanqiao.tjut.service..* 表示service包及其子包中所有的类 3
	 * .print* 表示类中所有以print开头的方法 4 (..) 表示参数是任意数量
	 */
	@Pointcut("execution(* org.lanqiao.tjut.service..print*(..))")
	private void userManagerPointut() {

	}

	@Before("userManagerPointut()")
	public void doAOPbusiness() {
		System.out.println("这里进行的是AOP处理-before...");
	}

	@After("userManagerPointut()")
	public void doAOPbusiness2() {
		System.out.println("这里进行的是AOP处理-after...");
	}
}
